数据库的高级操作
1、数据库备份与还原
数据库备份mysqldump

备份单个数据库
mysqldump -u用户名 -p密码 数据库名称 [数据库表名1，数据库表名2...] >存放路径sql文件名称.sql

备份多个数据库
mysqldump -u用户名 -p密码 --database 数据库名称 [数据库表名1，数据库表名2...] >存放路径sql文件名称.sql

备份单个数据库
mysqldump -u用户名 -p密码 --all-database>存放路径sql文件名称.sql

数据的还原

mysqldump -u用户名 -p密码 [数据库名称] <存放路径sql文件名称.sql

删除数据库

drop database 数据库名称；

2、用户管理

1、创建用户
grant不仅可以创建用户还可以对用户进行授权，该语句会自动记载权限表。最常用。
grant user 创建新用户服务器会自动修改相应的权限表，但新用户没有任何权限。
2、删除用户
drop user 用户信息；
3、修改用户密码
修改root用户密码

mysqladmin -u用户名 [-h 主机名] -p密码 新密码
1
update mysql.user set password=PASSWORD('新密码')
where user='用户名' and host='主机名';

flush privileges;//重新加载权限表

root用户修改普通用户密码

grant usage on *.* to '用户名'@'主机名' identified by [password] '新密码';
1
普通用户修改密码

set password=password('新密码');
1
如何解决root用户密码丢失问题

1停止MySql服务
net stop mysql；
2.使用--skip-grant-tables启动mysql服务，他可以停止MySQL的权限判断任何人都可以访问数据库，也可以启动mysql服务
--skip-grant-tables
3.登录mysql服务器（重新开一个对话框）
mysql -u root
4.使用update语句设置root用户密码
update mysql.user set password=PASSWORD('新密码')
where user='用户名' and host='主机名';
5。加载权限表，使密码生效
flush privileges;//重新加载权限表

3、权限管理

grant privileges [(columns)] ... on database.table 	//privileges表示权限类型 columns参数表示权限作用于某一列
to '用户名'@'主机名' [identified by [password] '密码'] 	//identified by参数为用户设置密码
[with with_option...]				//with后面带多个参数with_option（5个参数。。。）


查看权限

show grant for ''@'';
1
回收权限

revoke privileges [(columns)] ... on database.table 	//privileges表示权限类型 columns参数表示权限作用于某一列
from '用户名'@'主机名' [,'username'@'hostname']... 	//identified by参数为用户设置密码
1
2
如：收回指定用户insert权限revoke insert on *.* from '指定用户名'@'主机名';